The invention relates to a method of generating, from primitive data comprising geometric and surface descriptions of a plurality of image primitives, an image of objects in a three dimensional space in a regular, two-dimensional pixel array having two principal axes, the method comprising:
using the primitive data to render a plurality (N) of point-sampled intermediate pixel arrays while imposing for each rendition a different offset between the primitives and the sample points so as to define a basic array of N sample points distributed substantially over the area of each pixel; and
combining the N intermediate pixel arrays to generate a filtered pixel array constituting the desired image.
The invention further relates to an apparatus for generating an image of objects in a three dimensional space in a regular, two-dimensional pixel array, the apparatus comprising:
means for manipulating primitive data comprising geometric and surface descriptions of a plurality of image primitives;
rendering means for using the primitive data to render a plurality (N) of point-sampled pixel arrays while imposing for each rendition a different offset between the primitives and the sample points; and
means for combining the N intermediate pixel arrays to generate a filtered pixel array constituting the desired image.
A method and apparatus of the type set forth in the opening two paragraphs are known from "Fast Spheres, shadows, textures, transparencies and image enhancements in pixel-planes" by Henry Fuchs et al in Computer Graphics, Vol. 19, No. 3 (SIGGRAPH '85) at pages 111 to 120, in particular at pages 119 to 120 under "successive refinement". According to Fuchs et al, "Each pixel (x,y) is subdivided into a grid of subpixels so that each subpixel has an address of the form (x+xoffset, y+yoffset). We generate the image several times (16, perhaps), each time offsetting the image slightly by some (xoffset, yoffset) in such a way that the sample points within a pixel's area form a reasonable distribution. (The shift is easily achieved by adding A.xoffset+B.yoffset to the C coefficient of each broadcast triple.) Two sets of color buffers are maintained, one to store the color generated by the latest image generation offset and the other to store a running average as we move around the subpixel grid."
The primary aim of the filtering applied by this method is to reduce aliasing artifacts caused by the sampling process. One obtrusive artifact of aliasing is the "staircase" structure imposed on a primitive edge which slopes relative to the pixel array axes. This effect can become particularly obtrusive for certain classes of image feature, for example primitive edges which are nearly aligned with an axis of the pixel array. Unfortunately, using a basic array in the form of a simple grid, having principal axes aligned with those of the pixel array, leads to a substantial wastage of the filtering potential of N-fold oversampling in the particular case outlined where aliasing is most obtrusive.
This has been recognised in United Kingdom patent application GB-2177577-A, which proposes instead to calculate a random or pseudo-random distribution of sample points (so-called stochastic sampling). This randomisation has the effect of replacing aliasing artifact with noise, on the basis that random noise is in general more acceptable to the human viewer than the regular jagged effects of aliasing. However, the generation of the random sample distributions in GB-2177577-A is complicated by measures taken to avoid bunching and other effects, and optimum antialiasing demands that a new random sample pattern is generated for each pixel. While it is mentioned in GB-2177577-A that, for simplicity, a single randomly generated pattern can be used at every pixel location, there is no guarantee that the filtering of the most obtrusive aliasing artifacts will be better than that afforded by a regular grid of points. Indeed, with a fixed pattern, aliasing might be made even worse by the stochastic technique.